import { Controller, Get, Post, Body } from '@nestjs/common';
import { BannerService } from 'src/services/banner/banner.service';
import { Banner } from 'src/types/banner.interface';
import { HttpResponse } from 'src/types/http_response.interface';
//定义控制器的装饰器，设置路径的前缀为banners
@Controller('banners')
export class BannerController {
    constructor(private readonly bannerService: BannerService) {

    }
    //GET请求装饰器，无参数
    @Get()
    async findAllActive(): Promise<HttpResponse<Banner[]>> {
        const data = await this.bannerService.find({ isActive: true });
        return {
            success: true,
            message: 'All active banners retrieved successfully',
            data
        };

    }
    //Post请求装饰器，用来创建一个或多个banner
    @Post()
    async create(//DTO Data Transfer Object 数据传输对象，当客户端把数据传送到后台的
        @Body() createBannerDTO: Banner | Banner[]//使用Body参数装饰器用来获取 请求体的数据并保存在createBannerDTO中
    ) {
        const data = await this.bannerService.create(createBannerDTO);
        //data里的文档其实是mongoose专用文档 对象，当返回给客户端的时候还需要调用toJSON转成json返回
        return data;
    }
}
